<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>设置区域信息</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="function.rtrim.html">« rtrim</a></li>
      <li style="float: right;"><a href="function.sha1-file.html">sha1_file »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="ref.strings.html">字符串 函数</a></li>
    <li>设置区域信息</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="function.setlocale" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">setlocale</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">setlocale</span> &mdash; <span class="dc-title">设置区域信息</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.setlocale-description">
  <h3 class="title">说明</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>setlocale</strong></span>(<span class="methodparam"><span class="type">int</span> <code class="parameter">$category</code></span>, <span class="methodparam"><span class="type">string</span> <code class="parameter">$locales</code></span>, <span class="methodparam"><span class="type">string</span> <code class="parameter">...$rest</code></span>): <span class="type"><span class="type">string</span>|<span class="type"><span class="type false">false</span></span></span></div>

  <p class="simpara">替代签名（不支持命名参数）：</p>
  <div class="methodsynopsis dc-description"><span class="methodname"><strong>setlocale</strong></span>(<span class="methodparam"><span class="type">int</span> <code class="parameter">$category</code></span>, <span class="methodparam"><span class="type">array</span> <code class="parameter">$locale_array</code></span>): <span class="type"><span class="type">string</span>|<span class="type"><span class="type false">false</span></span></span></div>

  <p class="para rdfs-comment">
   设置区域信息。
  </p>
  <div class="warning"><strong class="warning">警告</strong>
   <p class="para">
    区域信息是按进程维护的，而不是线程。如果在多线程服务器 API 上运行 PHP，区域设置可能在脚本运行时突然变化，尽管脚本本身并没有调用
    <span class="function"><strong>setlocale()</strong></span>。这是因为其它脚本在同一时刻的同一进程的不同线程中运行，使用 <span class="function"><strong>setlocale()</strong></span>
    改变了进程级别的区域。在 Windows 上，自 PHP 7.0.5 起，每个线程都维护自己的区域信息。
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.setlocale-parameters">
  <h3 class="title">参数</h3>
  <p class="para">
   <dl>
    
     <dt>
<code class="parameter">category</code></dt>

     <dd>

      <p class="para">
       <code class="parameter">category</code> 命名常量指定的受区域设置的功能类别:
       <ul class="itemizedlist">
        <li class="listitem">
         <span class="simpara">
          <strong><code>LC_ALL</code></strong> 所有的设置
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code>LC_COLLATE</code></strong> 字符串比较, 详见
          <span class="function"><a href="function.strcoll.html" class="function">strcoll()</a></span>
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code>LC_CTYPE</code></strong> 字符串的分类与转换, 参见例子
          <span class="function"><a href="function.ctype-alpha.html" class="function">ctype_alpha()</a></span>
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code>LC_MONETARY</code></strong> 等同 <span class="function"><a href="function.localeconv.html" class="function">localeconv()</a></span>
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code>LC_NUMERIC</code></strong> 对于小数点的分隔（另请参见
          <span class="function"><a href="function.localeconv.html" class="function">localeconv()</a></span>）
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code>LC_TIME</code></strong> 时间与格式
          <span class="function"><a href="function.strftime.html" class="function">strftime()</a></span>
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code>LC_MESSAGES</code></strong> 系统响应（如果 PHP 使用 <code class="literal">libintl</code> 编译）
         </span>
        </li>
       </ul>
      </p>
     </dd>

    
    
     <dt>
<code class="parameter">locales</code></dt>

     <dd>

      <p class="para">
       如果 <code class="parameter">locales</code> 是空字符串
       <code class="literal">&quot;&quot;</code>，则区域名将从跟上述类别同名的环境变量的值或“LANG”中设置。
      </p>
      <p class="para">
       如果 <code class="parameter">locales</code> 是 <code class="literal">&quot;0&quot;</code>，则区域设置不受影响，仅返回当前设置。
      </p>
      <p class="para">
       如果 <code class="parameter">locales</code>
       后跟附加参数，则每个参数都会尝试设置为新的区域，直至成功。对于以下情况非常有用：不同的系统已知的区域名称不同；为可能无效的区域提供后备。
      </p>
     </dd>

    
    
     <dt>
<code class="parameter">rest</code></dt>

     <dd>

      <p class="para">
       可选的字符串参数，尝试作为区域设置，直至成功。
      </p>
     </dd>

    
    
     <dt>
<code class="parameter">locale_array</code></dt>

     <dd>

      <p class="para">
       尝试将数组中的每个元素设置为新的区域，直至成功。对于以下情况非常有用：不同的系统已知的区域名称不同；为可能无效的区域提供后备。
      </p>
     </dd>

    
   </dl>

   <blockquote class="note"><p><strong class="note">注意</strong>: 
    <p class="para">
     在 Windows 中，setlocale(LC_ALL, &#039;&#039;) 从系统中的区域/语言设置（通过控制面板访问）中设置区域设置信息。
    </p>
   </p></blockquote>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.setlocale-returnvalues">
  <h3 class="title">返回值</h3>
  <p class="para">
   返回新的当前区域，如果区域功能没有在当前平台实现、指定区域不存在或类别名无效时返回 <strong><code>false</code></strong>。
  </p>
  <p class="para">
   无效的类别名也会导致警告消息。类别/区域名可以在 <a href="http://www.faqs.org/rfcs/rfc1766" class="link external">&raquo;&nbsp;RFC 1766</a>
   和 <a href="http://www.loc.gov/standards/iso639-2/php/code_list.php" class="link external">&raquo;&nbsp;ISO 639</a> 中找到。不同的系统有不同的区域命名方案。
  </p>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    <span class="function"><strong>setlocale()</strong></span> 的返回值依赖运行 PHP 的系统。它准确返回系统
    <code class="literal">setlocale</code> 函数返回的内容。
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 examples" id="refsect1-function.setlocale-examples">
  <h3 class="title">范例</h3>
  <p class="para">
   <div class="example" id="example-4805">
    <p><strong>示例 #1 <span class="function"><strong>setlocale()</strong></span> 示例</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;设置区域为荷兰&nbsp;*/<br /></span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'nl_NL'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;输出：vrijdag&nbsp;22&nbsp;december&nbsp;1978&nbsp;*/<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">strftime</span><span style="color: #007700">(</span><span style="color: #DD0000">"%A&nbsp;%e&nbsp;%B&nbsp;%Y"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">mktime</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">22</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1978</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/*&nbsp;尝试为德语设置不同的可能区域&nbsp;*/<br /></span><span style="color: #0000BB">$loc_de&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'de_DE@euro'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'de_DE'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'de'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'ge'</span><span style="color: #007700">);<br />echo&nbsp;</span><span style="color: #DD0000">"Preferred&nbsp;locale&nbsp;for&nbsp;german&nbsp;on&nbsp;this&nbsp;system&nbsp;is&nbsp;'</span><span style="color: #0000BB">$loc_de</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-4806">
    <p><strong>示例 #2 Windows 的 <span class="function"><strong>setlocale()</strong></span> 示例</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;设置区域为荷兰&nbsp;*/<br /></span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'nld_nld'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;输出：vrijdag&nbsp;22&nbsp;december&nbsp;1978&nbsp;*/<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">strftime</span><span style="color: #007700">(</span><span style="color: #DD0000">"%A&nbsp;%d&nbsp;%B&nbsp;%Y"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">mktime</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">22</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1978</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/*&nbsp;尝试为德语设置不同的可能区域&nbsp;*/<br /></span><span style="color: #0000BB">$loc_de&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'de_DE@euro'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'de_DE'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'deu_deu'</span><span style="color: #007700">);<br />echo&nbsp;</span><span style="color: #DD0000">"Preferred&nbsp;locale&nbsp;for&nbsp;german&nbsp;on&nbsp;this&nbsp;system&nbsp;is&nbsp;'</span><span style="color: #0000BB">$loc_de</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.setlocale-notes">
  <h3 class="title">注释</h3>
  <div class="tip"><strong class="tip">小技巧</strong>
   <p class="para">
    Windows 用户可以在 Microsoft 的 <abbr title="Microsoft Developer Network">MSDN</abbr> 网站上找到有关
    <code class="parameter">locales</code> 字符串的有用信息。支持的语言字符串可在<a href="http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx" class="link external">&raquo;&nbsp;语言字符串文档</a>中找到，支持的国家/区域字符串可在<a href="http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.90%29.aspx" class="link external">&raquo;&nbsp;国家/区域文档</a>中找到。

   </p>
  </div>
 </div>


</div></div></div></body></html>